#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

bool compare(int x, int y)
{
    // x,y两个进行比较，小的就排在前面
    return x < y;
}

// 定义函数对vector进行输出
void cout_vec(vector<int> &temp)
{
    for (size_t i = 0; i < temp.size(); i++)
    {
        cout << temp[i] << " ";
    }
    cout << endl;
}

int main()
{
    vector<int> vec{1, 5, 3, 2, 0, 46};
    int n;
    // vector排序的方法
    sort(vec.begin(), vec.end()); // 从小到大排序，结果为0 1 2 3 5 46

    cout_vec(vec);

    sort(vec.begin(), vec.end(), compare); // 从小到大排序，使用自定义函数，结果为0 1 2 3 5 46
    cout_vec(vec);

    sort(vec.begin(), vec.end(), greater<>()); // 从大到小排序，使用greater<int>()或者不指定类型greater<>()定义为降序，结果为46 5 3 2 1 0
    cout_vec(vec);

    sort(vec.begin(), vec.end());    // 从小到大排序，结果为0 1 2 3 5 46
    reverse(vec.begin(), vec.end()); // 然后将结果反转，46 5 3 2 1 0
    cout_vec(vec);

    vector<pair<int, int>> te{{1, 2}, {3, 5}};
    cout << (te.end() - 1)->first; // end()-1才是最后一个元素
}